package Alee150;

/**
 * ClassName: c03
 * Package: Alee150
 * Description:26. 删除有序数组中的重复项
 * https://leetcode.cn/problems/remove-duplicates-from-sorted-array/?envType=study-plan-v2&envId=top-interview-150
 * 26. 删除有序数组中的重复项
 * 简单
 * 相关标签
 * premium lock icon相关企业
 * 提示
 *
 * 给你一个 非严格递增排列 的数组 nums ，请你 原地 删除重复出现的元素，使每个元素 只出现一次 ，返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。然后返回 nums 中唯一元素的个数。
 *
 * 考虑 nums 的唯一元素的数量为 k。去重后，返回唯一元素的数量 k。
 *
 * nums 的前 k 个元素应包含 排序后 的唯一数字。下标 k - 1 之后的剩余元素可以忽略。
 * @Author BCXJ
 * @Create 2025/9/28 08:47
 * @Version 1.0
 * @Since 1.0
 */
public class c03 {

    public static void main(String[] args) {
        int[] arr = {0,0,1,1,1,2,2,3,3,4};
        System.out.println(removeDuplicates(arr));
    }

    public static int removeDuplicates(int[] nums) {
        int cur = 0;
        for (int next = 1; next < nums.length; next++) {
            // 一样的元素，跳过
            if(nums[next] == nums[cur]) {
                continue;
            }
            // 不一样的元素
            nums[++ cur] = nums[next];
        }
        return cur + 1;
    }
}
